<?php

namespace falcon5\inc\Base;

/**
 * Class Config
 * @package falcon5\inc\Base
 * @desc 配置加载器
 */
class Config
{
    /**
     * 配置数据
     * @var array
     */
    private static $config = null;

    /**
     * 加载配置
     * @return array
     */
    private static function loadConfig()
    {
        if (self::$config === null) {
            $configFile = plugin_dir_path(dirname(__FILE__, 2)) . 'config/config.php';
            if (file_exists($configFile)) {
                self::$config = require $configFile;
            } else {
                self::$config = [];
                error_log('Falcon5: 配置文件不存在: ' . $configFile);
            }
        }
        return self::$config;
    }

    /**
     * 获取配置值
     * @param string $key 配置键，支持点号分隔的多级键，如 'plugin.version'
     * @param mixed $default 默认值
     * @return mixed
     */
    public static function get($key, $default = null)
    {
        $config = self::loadConfig();
        
        // 处理多级键
        if (strpos($key, '.') !== false) {
            $keys = explode('.', $key);
            $value = $config;
            
            foreach ($keys as $k) {
                if (!is_array($value) || !isset($value[$k])) {
                    return $default;
                }
                $value = $value[$k];
            }
            
            return $value;
        }
        
        return $config[$key] ?? $default;
    }

    /**
     * 获取所有配置
     * @return array
     */
    public static function all()
    {
        return self::loadConfig();
    }
} 